import 'package:word_game/battle/battleable.dart';
import 'package:word_game/battle/skills/buff.dart';
import 'package:word_game/engine/core.dart';
import '../attack_action.dart';
import '../monster.dart';
import 'debuff.dart';

abstract class Skill extends Sightable {
  Skill(String name) : super(name);
  /// 携带的debuff，可以有多个
  List<Debuff> debuffs = [];
  /// 携带的buff，可以有多个
  List<Buff> buffs = [];
  
  List<Monster> determineTargets(List<Monster> alternatives);
  AttackAction determineAction(Hero hero);
  
  List<Battleable> determineBuffTargets(List<Battleable> alternatives) {
    return alternatives;
  }
}